package main

import (
	"a-product/service"
	"context"
	"fmt"
	"google.golang.org/grpc"
	"net"
)

// ProductService 3.1 新建结构体
type ProductService struct {
	service.UnimplementedProdServiceServer
}

// GetProductStock 3.2 实现服务定义的方法
func (p ProductService) GetProductStock(ctx context.Context, req *service.ProductRequest) (*service.ProductResponse, error) {
	fmt.Println("显示客户端请求参数", req)
	// 返回给客户端信息
	reply := service.ProductResponse{
		ProdStock: 3,
	}
	return &reply, nil
}

func main() {
	// 1 新建端口监听
	portCon, err := net.Listen("tcp", ":3003")
	if err != nil {
		fmt.Println("端口监听失败", err)
	}
	fmt.Println("监听情况", portCon)

	// 2 启用 grpc
	s := grpc.NewServer()
	// 3 注册服务
	service.RegisterProdServiceServer(s, &ProductService{})
	// 4 监听端口启动
	fmt.Println("端口启动")
	err = s.Serve(portCon)
	if err != nil {
		fmt.Println("err", err)
		return
	}
}
